package com.ctshk.rpc.bus.dto;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalTime;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

/**
 * <p>
 * 巴士票预订dto
 * </p>
 *
 * @author 彭柳霖
 * @since 2021-02-09
 */
@Data
@ApiModel(value="ReservationBusPageDTO对象", description="巴士票预订dto")
public class ReservationBusPageDTO implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "巴士产品id")
    private Long busProductId;

    @ApiModelProperty(value = "巴士产品来源")
    private Integer productSource;

    @ApiModelProperty(value = "出发时间")
    private LocalTime departureTime;

    @ApiModelProperty(value = "到达时间")
    private LocalTime terminusTime;

    @ApiModelProperty(value = "班次码")
    private String shiftCode;

    @ApiModelProperty(value = "上车站名称")
    private String boardingStationName;

    @ApiModelProperty(value = "关口名称")
    private String gatewayName;

    @ApiModelProperty(value = "下车站点名称")
    private String alightingStationName;

    @ApiModelProperty(value = "车辆类型")
    private Integer vehicleType;

    @ApiModelProperty(value = "预计耗时")
    private Integer estimatedTime;

    @ApiModelProperty(value = "适用人群")
    private Long intendedFor;
    
    @ApiModelProperty(value = "适用人群名称")
    private String intendedForName;

    @ApiModelProperty(value = "供应商名称")
    private String supplierName;
    
    @ApiModelProperty("是否限制票数，0：否；1：是；")
    private Integer isLimitTicket;

    @ApiModelProperty(value = "余票")
    private Integer ticketNum;

    @ApiModelProperty("成人价格")
    private BigDecimal adultPrice;

    @ApiModelProperty("小童价格")
    private BigDecimal childrenPrice;
    
    @ApiModelProperty("长者价格")
    private BigDecimal oldPrice;

    @ApiModelProperty("成本id")
    private Long costId;

    @ApiModelProperty(value = "产品设置加价类型")
    private Integer priceType;

    @ApiModelProperty(value = "产品设置加价")
    private BigDecimal productPrice;

    @ApiModelProperty(value = "价格")
    private BigDecimal price;
    
    @ApiModelProperty(value = "是否二次确认")
    private Integer isConfirm;
    
    @ApiModelProperty(value = "预订须知")
    private String bookingInformation;

    @ApiModelProperty(value = "退改设置")
    private Integer changeSettings;
    
    @ApiModelProperty(value = "出发城市id")
    private Long departureCityId;

    @ApiModelProperty(value = "出发城市名称")
    private String departureCityName;
    
    @ApiModelProperty(value = "到达城市id")
    private Long arriveCityId;

    @ApiModelProperty(value = "到达城市名称")
    private String arriveCityName;
    
    @ApiModelProperty(value = "座位库存数")
    private Integer inventory;
    
    @ApiModelProperty(value = "是否需要证件（0：不需要 1：需要）")
    private Integer isNeedCertificates;
    
    @ApiModelProperty(value = "币种id")
    private Long currencyId;
}
